// Login JS Document
require.config({
    baseUrl: '/js/common',
    paths: {
        libs: '/js/libs'
    }
});
define(function(require){
	// 加载js
	var rs_zepto = require('libs/zepto');
    var rs_doExam = require('common_click');
	var rs_yingSoftCookie = require('yingSoftCookie');
	var rs_yingSoftPrg = require('yingSoftPrg');
	var rs_agentInfo = require('agentInfo');
    var rs_userAction = require('userAction');
	var rs_ajax = require('ajax');
	var rs_dialog = require('dialog');
	var rs_storage = require('storage');
    var rs_jq = require('libs/jquery');
	// 初始化
    G_UserAction.loadObject();
    G_AgentInfo.loadIcon();
	this.init = function(){
        var _appID = G_Cookie.getAppID();
        // 显示信息
        _getNoticeData(_appID);
        _msgnum();
        // 登陆判断
        _getUserStatus();
        // 初始化页面
        _setUserPage();
        // 所有点击事件
        _setClickEven();
        var headimg = setTimeout(function(){
            
            // console.log(123);
        },1000);
	}
    /********************************************************************************
    函数名：_setUserPage
    功能：初始化页面信息
    *********************************************************************************/
    function _setUserPage(){
        // 设置高度
        $('.userHome').css('height',window.innerHeight - $('.header').height() - $('.footer').height());
        // 设置用户名
        $('.userCenter p em').html('通行证：' + G_Cookie.getUserName());
        var success = function (data) {
            var jsonData = JSON.parse(data);
            if (!jsonData.data.nickName) {
                var nickName = 'ks' + G_Cookie.getUserID();
                $('.userCenter p strong').html('昵称：' + nickName);
            } else {
                $('.userCenter p strong').html('昵称：' + jsonData.data.nickName);
            }
        }
        var url = '/api/community/userinfo/get?guid=' + G_Cookie.getGuid();
        G_AjaxApiShequ.get(url, true, success);
        // 设置头像
        var imgData = G_Prg.datetimeFormat(new Date(new Date()),'yyyyMMddhhmmss');
        var userImg = 'http://yingedu.oss-cn-shenzhen.aliyuncs.com/head/' + G_Cookie.getUserID() + '.jpg?v=' + imgData;
        var imgDiv = '<img onerror="loadImg()" alt="" src="'+userImg+'" />';
        $('.headImg strong').html('');
        $('.userCenter span').append(imgDiv);
//         // 设置缓存
//         if (window.ShowCacheSize) {
//             var cacheSize = window.ShowCacheSize.cacheSize();
//             if (cacheSize && cacheSize > 0) {
//                 $('.clearCache em i').html(cacheSize);
//             }
//         }else{
// //          $('.clearCache em i').html('0');
//         }
        // 关于软件
        $('.aboutSoft .version li').eq(1).find('strong').html(G_AgentInfo.getQQ());
        $('#telephone').html(G_AgentInfo.getTelephone());
        var tel = G_AgentInfo.getTelephone();
        tel = tel.replace(new RegExp(' ', 'gm'), ''); //去空格
        tel = tel.replace(new RegExp('-', 'gm'), ''); //去-
        $('#telephone').attr('phone',tel);
        
    }
    /********************************************************************************
    函数名：_setClickEven
    功能：所有点击事件
    *********************************************************************************/
    function _setClickEven(){
        // 个人中心跳转
        $('.userHome li').click(function(){
            if($(this).attr('alink')){
                window.location.href = $(this).attr('alink');
            }
        });
        // 关于软件
        $('.userHome .about').parent().click(function(){
            $('.aboutSoft,.header_bf').show();
            $('.header,.userHome,.footer,.buySoftBtn').hide();
        });
        $('.header_bf .more_exam').click(function(){
            $('.aboutSoft,.header_bf').hide();
            $('.header,.userHome,.footer,.buySoftBtn').show();
        });
        // 拨打电话
        $('.aboutSoft strong#telephone').click(function(){
            var tel = $(this).attr('phone');
            var browser={    
                versions:function(){            
                    var u = navigator.userAgent, app = navigator.appVersion;            
                    return {       
                        android: u.indexOf('Android') > -1 || u.indexOf('Linux') > -1, //android终端或者uc浏览器                
                        iPhone: u.indexOf('iPhone') > -1 || u.indexOf('Mac') > -1, //是否为iPhone或者QQHD浏览器                
                        iPad: u.indexOf('iPad') > -1, //是否iPad          
                    };
                }()
            };
            if(browser.versions.android){
                // window.location.href = 'tel://' + tel;
                window.android.call(tel);
            }else{
                // if(typeof(window.KFPhone)!=='undefined'&&typeof(window.KFPhone.Phone)!=='undefined'){//判断是否存在拨号方法
                //     window.KFPhone.Phone(tel);
                // }else{
                //     window.location.href = 'tel://' + tel;
                // }
                window.location.href = 'tel://' + tel;
            }
        });
        // 注销登录
        $('.loginOut').click(function(){
            var browser={    
                versions:function(){            
                    var u = navigator.userAgent, app = navigator.appVersion;            
                    return {       
                        android: u.indexOf('Android') > -1 || u.indexOf('Linux') > -1, //android终端或者uc浏览器                
                        iPhone: u.indexOf('iPhone') > -1 || u.indexOf('Mac') > -1, //是否为iPhone或者QQHD浏览器                
                        iPad: u.indexOf('iPad') > -1, //是否iPad          
                    };
                }()
            };
            if(browser.versions.iPhone || browser.versions.iPad){
                parent.window.location.href = "iosd://"+'CleanSize';
            }else{
                //保存一些必要的Cookie
                G_Prg.confirm('您确定退出登录吗？',function(){
                    var clientType = G_Cookie.getClientType();
                    var iosVersion =G_Prg.getCookie('IOSVERSION');
                    var androidVersion=G_Prg.getCookie('VERSION');

                    G_Prg.cleanCookie();
                    G_Cookie.removeUserID();
                    G_Cookie.removeGuid();
                    G_Cookie.removeUserName();
                    G_Cookie.removeUserPwd();
                    clearCookie();

                    
                    G_Cookie.setClientType(clientType);
                    G_Prg.setCookie('IOSVERSION',iosVersion);
                    G_Prg.setCookie('VERSION',androidVersion);

                    window.location.href = '/login';
                });
            }
        });
    }
    /********************************************************************************
    函数名：_getUserStatus
    功能：登录判断事件
    *********************************************************************************/
    function _getUserStatus(){
        var userID = G_Cookie.getUserID();
        if (!userID) {
            G_Prg.alert('请先登录再使用该功能！', function () {
                location.href = '/login?fromUrl=userHome';
            });
            return;
        }
        var userName = G_Cookie.getUserName();
        if (!userName) {
            G_Prg.alert('请先登录再使用该功能！', function () {
                location.href = '/login?fromUrl=userHome';
            });
            return;
        }
        var appID = G_Cookie.getAppID();
        if (!appID) {
            G_Prg.alert('请先选择科目再使用该功能！', function () {
                location.href = '/switchMenu';
            });
            return;
        }
        var appEName = G_Cookie.getAppEName();
        if (!appEName) {
            G_Prg.alert('请先选择科目再使用该功能！', function () {
                location.href = '/switchMenu';
            });
            return;
        }
    }
    /********************************************************************************
    函数名：_msgnum
    功能：获取信息条数
    ****************************************************************/
    function _msgnum() {
        var guid = G_Cookie.getGuid();
        var appID = G_Cookie.getAppID();
        if (!guid || !appID) {
            return;
        }
        //var url = '/api/community/message/list?curPage=0&eachPageNum=1&isRead=0&guid=' + guid + '&appID=' + appID;
        var url = '/api/community/message/count?guid=' + guid + '&appID=' + appID;
        var success = function (data) {
            var jsonData = JSON.parse(data);
            if (jsonData.status === 200) {
                if (jsonData.data.total === 0) {

                }
                else {
                    var total = jsonData.data.total;
                    if (total > 999) {
                        total = 999;
                    }
                    var em = '<em>'+ total +'</em>';
                    $('.message').append(em);
                }

                //console.log(jsonData.data.total);
            } else if (jsonData.status === 300) {

            } else if (jsonData.status >= 400 && jsonData.status < 500) {

            } else {
                G_Prg.alert(jsonData.msg);
                return;
            }

        };
        G_AjaxApiShequ.get(url, true, success);
    }
    /********************************************************************************
     函数名：_getNoticeData
     功能：获取公告内容
     *******************************************************************************/
    function _getNoticeData(appID) {
        var URL = '/api/announcement/getAnnouncement';
        var data = {"appID": appID};
        var noticeJson = [];
        G_AjaxApi_Record.post(URL, data, true, function (json) {
            var jsonData = JSON.parse(json);
            if (jsonData.status === 200) {
                noticeJson = _MergeArr(noticeJson, jsonData.all);
                noticeJson = _MergeArr(noticeJson, jsonData.class);
                noticeJson = _MergeArr(noticeJson, jsonData.app);
                _noticeArr = noticeJson;
//              var length = noticeJson.length;
                G_Prg.setCookie('num', noticeJson.length);
                var length = G_Prg.getCookie('num');
//              console.log(length);
//              var number = 0;
//              if (length) {
//                  var showNoticeDate = G_Prg.getCookie('SHOWNOTICEDATE');
//                  console.log(G_Prg.getCookie('SHOWNOTICEDATE'))
//                  if (showNoticeDate) {
//                      showNoticeDate = new Date(showNoticeDate);
//                      for (var i = 0; i < length; i++) {
//                          var startTime = noticeJson[i].startTime;
//                          if (startTime) {
//                              startTime = new Date(startTime);
//                          }
//                          if (startTime <= showNoticeDate) {
//                              break;
//                          }
//                          number++;
//                      }
//                  } else {
//                      number = length;
//                  }
//                  if (number) {
                       var em = '<em>'+ length +'</em>';
//                     $('.system').append(em);
//                  }
//              }
            } else if (jsonData.status === 201) {//无用户自己设置的时间

            } else if (jsonData.status === 300) {
                G_Prg.throw('程序运行错误:_getNoticeData,数据库连接错误');
            } else if (jsonData.status >= 400 && jsonData.status < 500) {
                G_Prg.throw('程序运行错误:_getNoticeData,参数错误');
            } else {
                G_Prg.throw('程序运行错误:_getNoticeData  未知返回值：' + JSON.stringify(jsonData));
            }
        });
    }
    /********************************************************************************
     函数名：_MergeArr
     功能：合并两个数组并排序
     *******************************************************************************/
    function _MergeArr(goalArr, arr) {
        if (!arr || !arr.length) {
            return goalArr;
        }
        for (var i = 0; i < arr.length; i++) {
            for (var j = 0; j < goalArr.length; j++) {
                if (new Date(goalArr[j].startTime) < new Date(arr[i].startTime)) {
                    break;
                }
            }
            goalArr.splice(j, 0, arr[i]);
        }
        return goalArr;
    }
    function clearCookie(){
        var keys=document.cookie.match(/[^ =;]+(?=\=)/g);
        if (keys) {
            for (var i =  keys.length; i--;)
                document.cookie=keys[i]+'=0;expires=' + new Date( 0).toUTCString()
        }    
    }
    // 执行初始化
	init();
});